---
title: Configuración
description: La configuración de linting predeterminada de Ultracite y cómo modificarla.
---

Una de las mejores características de Ultracite es que funciona sin necesidad de configuración: puedes simplemente extender el preset `ultracite` y empezar. Sin embargo, cada proyecto es un poco diferente y puede que quieras personalizar ciertas reglas o adaptar Ultracite a distintos frameworks. Esta sección explica la configuración predeterminada y cómo extenderla o sobrescribirla.

Ultracite proporciona configuraciones específicas por framework que puedes extender además de la configuración base. Esto te permite añadir reglas de lint específicas de un framework sin inflar la configuración base ni lidiar con reglas irrelevantes.

Puedes encontrar la lista completa de configuraciones disponibles específicas por framework en la sección de [Preajustes](/preset/core).

### Uso

Para usar una configuración específica de framework, añádela a tu array `extends`:

```jsonc title="biome.jsonc"
{
  "extends": ["ultracite/core", "ultracite/solid"]
}
```

Puedes combinar múltiples configuraciones si trabajas en un proyecto con varios frameworks o usas algo como Astro, que soporta múltiples frameworks.

```jsonc title="biome.jsonc"
{
  "extends": ["ultracite/core", "ultracite/react", "ultracite/remix"]
}
```

## Configuración predeterminada

Cuando incluyes `"extends": ["ultracite/core"]` en tu `biome.jsonc`, estás cargando la configuración preset base de Ultracite. Este preset incluye reglas y configuraciones agnósticas al framework. Algunos aspectos notables de la configuración predeterminada:

- **Rigor de TypeScript**: Ultracite activa las comprobaciones estrictas de TypeScript y reglas de lint que requieren un tipado robusto. Por ejemplo, desalienta el uso de `any`, exige el manejo de `null/undefined` y prefiere tipos explícitos en ciertas situaciones para evitar ambigüedades.
- **Equivalentes de "Recommended" de ESLint**: Se incluyen reglas comunes de buenas prácticas (sin variables no usadas, sin eval explícito, sin contaminación de proto, etc.).
- **Accesibilidad**: Las reglas equivalentes a los estándares de accesibilidad están activadas por defecto (atributos ARIA, HTML semántico, navegación por teclado, etc.).
- **Node.js**: Se manejan particularidades específicas del entorno. Por ejemplo, las variables globales proporcionadas por Node (como `module`, `process`) se reconocen para que no se marquen incorrectamente como indefinidas.
- **Convenciones de formato**: Los ajustes del formateador de Ultracite (en gran parte heredados de los valores predeterminados de Biome/Prettier) incluyen indentación de 2 espacios, un ancho máximo de línea de 80 caracteres, punto y coma al final de las sentencias, comas finales donde sean válidas (por ejemplo, en arrays/objetos multilínea), comillas dobles para cadenas, etc. Estos se eligen para coincidir con convenciones comunes y garantizar limpieza en los diffs.

Todos estos valores predeterminados buscan imponer un estilo coherente y prevenir errores comunes sin que tengas que configurar manualmente cada regla.

Para una referencia completa de todas las reglas de lint configuradas en la configuración base de Ultracite, consulta la documentación de [Configuración principal](/preset/core).

## Sobrescribir la configuración

### Modificar `biome.jsonc`

Puedes desactivar reglas modificando el archivo `biome.jsonc`.

Por ejemplo, para desactivar la regla `noAutofocus`, puedes añadir lo siguiente:

```jsonc title="biome.jsonc"
{
  "linter": {
    "rules": {
      "a11y": {
        "noAutofocus": "off"
      }
    }
  }
}
```

### Comentarios en línea

También puedes desactivar reglas por línea añadiendo un comentario al final de la línea:

```tsx title="page.tsx"
// biome-ignore lint/security/noDangerouslySetInnerHtml: This is a valid use case.
<div dangerouslySetInnerHTML={{ ... }} />
```